package Demo1;

/**
 * 第N个泰波那契数（easy）
 * 普通算法
 * https://leetcode.cn/problems/n-th-tribonacci-number/
 */
class Solution {
    public int tribonacci1(int n) {
        // 1.解决边界问题
        if(n == 0) {
            return 0;
        }else if(n == 1 || n == 2) {
            return 1;
        }
        // 2. 创建dp表
        int[] dp = new int[n+1];
        // 3. 初始化
        dp[0] = 0;
        dp[1] = dp[2] = 1;
        // 4. 填表
        for(int i = 3; i <= n;i++) {
            dp[i] = dp[i-1] + dp[i-2] + dp[i-3];
        }
        // 5. 返回值
        return dp[n];
    }
}